# day3 随机数据可视化
import numpy as np
import matplotlib.pyplot as plt

def plot_random_histogram(sample_size=100, bins=20, seed=42):
    """
    生成随机数据并绘制直方图
    :param sample_size: 随机数据点数量
    :param bins: 直方图分箱数量
    :param seed: 随机种子，保证可复现
    """
    np.random.seed(seed)  # 设置随机种子
    random_data = np.random.randn(sample_size)  # 生成标准正态分布数据

    plt.figure(figsize=(8, 5))
    plt.hist(random_data, bins=bins, color='skyblue', alpha=0.75, edgecolor='black')
    plt.title('Random Data Histogram')
    plt.xlabel('Value')
    plt.ylabel('Frequency')
    plt.grid(True, linestyle='--', alpha=0.6)
    
    # 显示均值线
    mean = np.mean(random_data)
    plt.axvline(mean, color='red', linestyle='dashed', linewidth=1, label=f'Mean: {mean:.2f}')
    plt.legend()
    
    plt.tight_layout()          # 调整子图间距
    # plt.savefig('./images/random_histogram.png')  # 保存为图片
    plt.show()


# 主流程入口
if __name__ == "__main__":
    plot_random_histogram()